@hooperre Hi. I've finally got to test it. I'm using RetroPie 4.4.1 and it is working for me but I am using only one PS4 Wireless Controller and nothing else.
Just for the sake of completeness, I've put my mupen64plus.cfg and InputAutoCfg.ini below. Thanks for your help.
# Mupen64Plus Configuration File
# This file is automatically read and written by the Mupen64Plus Core library
[Audio-OMX]
Version = 1
OUTPUT_PORT = "1"
# Frequency which is used if rom doesn't want to change it
DEFAULT_FREQUENCY = 33600
# Swaps left and right channels
SWAP_CHANNELS = False
# Audio Output Frequncy mode (when NATIVE_MODE=false): 0 = Rom Frequency, 1 ROM Frequency if supported (HDMI only), 2 = Standard frequency < Rom Frequency, 3 = Standard frequency > Rom Frequency, [N] Force output frequency
DEFAULT_MODE = 0
[Audio-SDL]
Version = 1
RESAMPLE = "src-sinc-fastest"
[Core]
# Mupen64Plus Core config parameter set version number. Please don't change this version number.
Version = 1.010000
# Draw on-screen display if True, otherwise don't draw OSD
OnScreenDisplay = False
# Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more
R4300Emulator = 2
# Disable compiled jump commands in dynamic recompiler (should be set to False)
NoCompiledJump = False
# Disable 4MB expansion RAM pack. May be necessary for some games
DisableExtraMem = False
# Increment the save state slot after each save operation
AutoStateSlotIncrement = False
# Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support
EnableDebugger = False
# Save state slot (0-9) to use when saving/loading the emulator state
CurrentStateSlot = 4
# Path to directory where screenshots are saved. If this is blank, the default value of ${UserConfigPath}/screenshot will be used
ScreenshotPath = "/home/pi/RetroPie/roms/n64"
# Path to directory where emulator save states (snapshots) are saved. If this is blank, the default #value of ${UserConfigPath}/save will be used
SaveStatePath = "/home/pi/RetroPie/savestate"
# Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default #value of ${UserConfigPath}/save will be used
SaveSRAMPath = "/media/usb0/savefile"
# Path to a directory to search when looking for shared data files
SharedDataPath = "/opt/retropie/configs/n64"
# Delay interrupt after DMA SI read/write
DelaySI = True
# Force number of cycles per emulated instruction
CountPerOp = 0
# Disable speculative precompilation in new dynarec
DisableSpecRecomp = True
# Use alternate VI timing (-1=Game default, 0=Don't use alternate timing, 1=Use alternate timing)
ViTiming = -1
# Modify the default count per scanline(-1 or 0=Game default)
CountPerScanline = -1
# Randomize PI/SI Interrupt Timing
RandomizeInterrupt = True
# Duration of SI DMA (-1: use per game settings)
SiDmaDuration = -1
[CoreEvents]
# Mupen64Plus CoreEvents config parameter set version number. Please don't change this version number.
Version = 1
# SDL keysym for stopping the emulator
Kbd Mapping Stop = 27
# SDL keysym for switching between fullscreen/windowed modes
Kbd Mapping Fullscreen = 0
# SDL keysym for saving the emulator state
Kbd Mapping Save State = 286
# SDL keysym for loading the emulator state
Kbd Mapping Load State = 288
# SDL keysym for advancing the save state slot
Kbd Mapping Increment Slot = 0
# SDL keysym for resetting the emulator
Kbd Mapping Reset = 290
# SDL keysym for slowing down the emulator
Kbd Mapping Speed Down = 291
# SDL keysym for speeding up the emulator
Kbd Mapping Speed Up = 292
# SDL keysym for taking a screenshot
Kbd Mapping Screenshot = 293
# SDL keysym for pausing the emulator
Kbd Mapping Pause = 112
# SDL keysym for muting/unmuting the sound
Kbd Mapping Mute = 109
# SDL keysym for increasing the volume
Kbd Mapping Increase Volume = 93
# SDL keysym for decreasing the volume
Kbd Mapping Decrease Volume = 91
# SDL keysym for temporarily going really fast
Kbd Mapping Fast Forward = 102
# SDL keysym for advancing by one frame when paused
Kbd Mapping Frame Advance = 47
# SDL keysym for pressing the game shark button
Kbd Mapping Gameshark = 103
# Joystick event string for stopping the emulator
Joy Mapping Stop = "J0B8/B11,J1B8/B11,J2B8/B11,J3B8/B11"
# Joystick event string for switching between fullscreen/windowed modes
Joy Mapping Fullscreen = ""
# Joystick event string for saving the emulator state
Joy Mapping Save State = ""
# Joystick event string for loading the emulator state
Joy Mapping Load State = ""
# Joystick event string for advancing the save state slot
Joy Mapping Increment Slot = ""
# Joystick event string for taking a screenshot
Joy Mapping Screenshot = ""
# Joystick event string for pausing the emulator
Joy Mapping Pause = ""
# Joystick event string for muting/unmuting the sound
Joy Mapping Mute = ""
# Joystick event string for increasing the volume
Joy Mapping Increase Volume = ""
# Joystick event string for decreasing the volume
Joy Mapping Decrease Volume = ""
# Joystick event string for fast-forward
Joy Mapping Fast Forward = ""
# Joystick event string for pressing the game shark button
Joy Mapping Gameshark = ""
[Input-SDL-Control1]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = 0
# SDL joystick name (or Keyboard)
name = "Wireless Controller"
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak
plugin = "2"
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = "hat(0 Right)"
DPad L = "hat(0 Left)"
DPad D = "hat(0 Down)"
DPad U = "hat(0 Up)"
Start = "button(9)"
Z Trig = "axis(3+)"
B Button = "button(0)"
A Button = "button(1)"
C Button R = "axis(2+)"
C Button L = "axis(2-)"
C Button D = "axis(5+)"
C Button U = "axis(5-)"
R Trig = "button(5)"
L Trig = "button(4)"
Mempak switch = ""
Rumblepak switch = ""
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"
[Input-SDL-Control2]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = "DragonRise Inc. Generic USB Joystick "
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
A Button = "button(2)"
B Button = "button(5)"
C Button U = "button(1)"
C Button D = "button(4)"
R Trig = "button(3)"
L Trig = "button(7)"
Z Trig = "button(10)"
X Axis = "axis(1-, 1+)"
Y Axis = "axis(0+, 0-)"
Start = "button(8)"
Mempak switch = ""
Rumblepak switch = ""
[Input-SDL-Control3]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = "DragonRise Inc. Generic USB Joystick "
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
A Button = "button(2)"
B Button = "button(5)"
C Button U = "button(1)"
C Button D = "button(4)"
R Trig = "button(3)"
L Trig = "button(7)"
Z Trig = "button(10)"
X Axis = "axis(1-, 1+)"
Y Axis = "axis(0+, 0-)"
Start = "button(8)"
Mempak switch = ""
Rumblepak switch = ""
[Input-SDL-Control4]
# Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number.
version = 2
# Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic
mode = 0
# Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number
device = -1
# SDL joystick name (or Keyboard)
name = "DragonRise Inc. Generic USB Joystick "
# Specifies whether this controller is 'plugged in' to the simulated N64
plugged = True
# Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak
plugin = 2
# If True, then mouse buttons may be used with this controller
mouse = False
# Scaling factor for mouse movements. For X, Y axes.
MouseSensitivity = "2.00,2.00"
# The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes.
AnalogDeadzone = "4096,4096"
# An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value
AnalogPeak = "32768,32768"
# Digital button configuration mappings
A Button = "button(2)"
B Button = "button(5)"
C Button U = "button(1)"
C Button D = "button(4)"
R Trig = "button(3)"
L Trig = "button(7)"
Z Trig = "button(10)"
X Axis = "axis(1-, 1+)"
Y Axis = "axis(0+, 0-)"
Start = "button(8)"
Mempak switch = ""
Rumblepak switch = ""
[Rsp-HLE]
# Mupen64Plus RSP HLE Plugin config parameter version number
Version = 1
# Path to a RSP plugin which will be used when encountering an unknown ucode.You can disable this by letting an empty string.
RspFallback = ""
# Send display lists to the graphics plugin
DisplayListToGraphicsPlugin = True
# Send audio lists to the audio plugin
AudioListToAudioPlugin = False
[Transferpak]
# Filename of the GB ROM to load into transferpak 1
GB-rom-1 = ""
# Filename of the GB RAM to load into transferpak 1
GB-ram-1 = ""
# Filename of the GB ROM to load into transferpak 2
GB-rom-2 = ""
# Filename of the GB RAM to load into transferpak 2
GB-ram-2 = ""
# Filename of the GB ROM to load into transferpak 3
GB-rom-3 = ""
# Filename of the GB RAM to load into transferpak 3
GB-ram-3 = ""
# Filename of the GB ROM to load into transferpak 4
GB-rom-4 = ""
# Filename of the GB RAM to load into transferpak 4
GB-ram-4 = ""
[UI-Console]
# Mupen64Plus UI-Console config parameter set version number. Please don't change this version number.
Version = 1
# Directory in which to search for plugins
PluginDir = "./"
# Filename of video plugin
VideoPlugin = "mupen64plus-video-GLideN64.so"
# Filename of audio plugin
AudioPlugin = "mupen64plus-audio-omx.so"
# Filename of input plugin
InputPlugin = "mupen64plus-input-sdl.so"
# Filename of RSP plugin
RspPlugin = "mupen64plus-rsp-hle.so"
[Video-General]
Fullscreen = False
ScreenWidth = 640
ScreenHeight = 480
# If true, activate the SDL_GL_SWAP_CONTROL attribute
VerticalSync = False
[Video-GLideN64]
# Settings version. Don't touch it.
configVersion = 20
# Crop resulted image (0=disable, 1=auto crop, 2=user defined crop)
CropMode = 0
# Crop width pixels from left and right of resulted image (in native resolution)
CropWidth = 0
# Crop height pixels from top and bottom of resulted image (in native resolution)
CropHeight = 0
# Enable/Disable MultiSampling (0=off, 2,4,8,16=quality)
MultiSampling = 0
# Screen aspect ratio (0=stretch, 1=force 4:3, 2=force 16:9, 3=adjust)
AspectRatio = 1
# Swap frame buffers (0=On VI update call, 1=On VI origin change, 2=On buffer update)
BufferSwapMode = 0
# Frame buffer size is the factor of N64 native resolution.
UseNativeResolutionFactor = 1
# Bilinear filtering mode (0=N64 3point, 1=standard)
bilinearMode = True
# Max level of Anisotropic Filtering, 0 for off
MaxAnisotropy = False
# Size of texture cache in megabytes. Good value is VRAM*3/4
CacheSize = 50
# Enable color noise emulation.
EnableNoise = True
# Enable LOD emulation.
EnableLOD = True
# Enable hardware per-pixel lighting.
EnableHWLighting = False
# Use persistent storage for compiled shaders.
EnableShadersStorage = True
# Make texrect coordinates continuous to avoid black lines between them. (0=Off, 1=Auto, 2=Force)
CorrectTexrectCoords = 0
# Render 2D texrects in native resolution to fix misalignment between parts of 2D image.
EnableNativeResTexrects = False
# Do not use shaders to emulate N64 blending modes. Works faster on slow GPU. Can cause glitches.
EnableLegacyBlending = True
# Enable frame and|or depth buffer emulation.
EnableFBEmulation = True
# Copy auxiliary buffers to RDRAM
EnableCopyAuxiliaryToRDRAM = False
# Enable N64 depth compare instead of OpenGL standard one. Experimental.
EnableN64DepthCompare = False
# Disable buffers read/write with FBInfo. Use for games, which do not work with FBInfo.
DisableFBInfo = True
# Read color buffer by 4kb chunks (strict follow to FBRead specification)
FBInfoReadColorChunk = False
# Read depth buffer by 4kb chunks (strict follow to FBRead specification)
FBInfoReadDepthChunk = True
# Enable color buffer copy to RDRAM (0=do not copy, 1=copy in sync mode, 2=copy in async mode)
EnableCopyColorToRDRAM = 2
# Enable depth buffer copy to RDRAM (0=do not copy, 1=copy from video memory, 2=use software render)
EnableCopyDepthToRDRAM = 2
# Enable color buffer copy from RDRAM.
EnableCopyColorFromRDRAM = False
# Texture filter (0=none, 1=Smooth filtering 1, 2=Smooth filtering 2, 3=Smooth filtering 3, 4=Smooth filtering 4, 5=Sharp filtering 1, 6=Sharp filtering 2)
txFilterMode = 0
# Texture Enhancement (0=none, 1=store as is, 2=X2, 3=X2SAI, 4=HQ2X, 5=HQ2XS, 6=LQ2X, 7=LQ2XS, 8=HQ4X, 9=2xBRZ, 10=3xBRZ, 11=4xBRZ, 12=5xBRZ), 13=6xBRZ
txEnhancementMode = 0
# Deposterize texture before enhancement.
txDeposterize = False
# Don't filter background textures.
txFilterIgnoreBG = False
# Size of filtered textures cache in megabytes.
txCacheSize = 100
# Use high-resolution texture packs if available.
txHiresEnable = True
# Allow to use alpha channel of high-res texture fully.
txHiresFullAlphaChannel = False
# Use alternative method of paletted textures CRC calculation.
txHresAltCRC = False
# Enable dump of loaded N64 textures.
txDump = False
# Zip textures cache.
txCacheCompression = True
# Force use 16bit texture formats for HD textures.
txForce16bpp = False
# Save texture cache to hard disk.
txSaveCache = True
# Path to folder with hi-res texture packs.
txPath = "/home/pi/.local/share/mupen64plus/hires_texture"
# File name of True Type Font for text messages.
fontName = "FreeSans.ttf"
# Font size.
fontSize = 14
# Font color in RGB format.
fontColor = "1F1F1F"
# Enable bloom filter
EnableBloom = False
# Brightness threshold level for bloom. Values [2, 6]
bloomThresholdLevel = 4
# Bloom blend mode (0=Strong, 1=Mild, 2=Light)
bloomBlendMode = 0
# Blur radius. Values [2, 10]
blurAmount = 10
# Blur strength. Values [10, 100]
blurStrength = 20
# Force gamma correction.
ForceGammaCorrection = False
# Gamma correction level.
GammaCorrectionLevel = 2
# Show FPS counter.
ShowFPS = True
# Show VI/S counter.
ShowVIS = False
# Show percent counter.
ShowPercent = False
# Counters horisontal position (0=left, 1=right)
CountersHPos = 0
# Counters vertical position (0=bottom, 1=top)
CountersVPos = 0
# Enable writing of fragment depth. Some mobile GPUs do not support it, thus it made optional. Leave enabled.
EnableFragmentDepthWrite = True
# Use GLideN64 per-game settings.
EnableCustomSettings = True
# Path to folder where plugin saves texture cache files.
txCachePath = "/home/pi/.cache/mupen64plus/cache"
# Path to folder where plugin saves dumped textures.
txDumpPath = "/home/pi/.cache/mupen64plus/texture_dump"
# Show internal resolution.
ShowInternalResolution = False
# Show rendering resolution.
ShowRenderingResolution = False
# Counters position (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right)
CountersPos = 8
[Video-Rice]
LoadHiResTextures = True
; InputAutoCfg.ini for Mupen64Plus SDL Input plugin
; Wireless Controller_START
[Wireless Controller]
plugged = True
plugin = 2
mouse = False
AnalogDeadzone = 4096,4096
AnalogPeak = 32768,32768
Mempak switch = button(11)
Rumblepak switch = button(12)
C Button D = axis(4+)
C Button L = axis(3-)
L Trig = button(4)
Start = button(9)
C Button U = axis(4-)
DPad D = hat(0 Down)
X Axis = axis(0-,0+)
R Trig = button(5)
DPad R = hat(0 Right)
DPad L = hat(0 Left)
Z Trig = button(6)
Y Axis = axis(1-,1+)
DPad U = hat(0 Up)
A Button = button(0)
B Button = button(3)
C Button R = axis(3+)
; Wireless Controller_END